iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Odoo

Odoo 14 Javascript 開發心路歷程系列 第 4

Day 4 生命週期介紹

  • 分享至 

  • xImage
  •  
  • Document: https://www.odoo.com/documentation/14.0/developer/reference/javascript/javascript_reference.html#widget-lifecycle
  • 在官方文件上,主要列出五個階段
    • Init: 初始化
    • willStart: 即將渲染
    • [Rendering]: 渲染中
    • Start: 渲染完成
    • Destroy: 摧毀
  • 以上四個階段皆只在生命週期執行一次而已,但實務上可能會有回到畫面就需要更新一次的需求,從原始碼中也可以看到額外的階段如下,以下會稍微簡單介紹一下筆者對於各階段的認知
    • Init: 初始化
      • 顧名思義,就是在 widget 實例化時會觸發的,整個生命週期只會觸發一次,帶入的參數為 parent, options
        • Parent: 是父組件,通常不會傳其他的,如果有其他的,需要看一下是否有註解解釋為何拋非組件的物件
        • Options: 就是個 object,在此階段可以針對 options 來進行過濾並取出所需的資訊
    • willStart: 即將渲染
      • 這裡筆者是理解成渲染前,組件內部成員 $el 還是 undefined,在這個階段會把組件有定義的 cssLibs, jsLibs, xmlDependcies 會一併請求,因此需要回傳 Promise 物件
    • [Rendering]: 渲染中
      • 此階段在文件中寫是在框架中自動完成,這裡會依照 widget 的設定來決定 el, $el 結果
    • Start: 渲染完成
      • 組件成員 el, $el 已經有資料,而 $ 開頭的成員,通常代表是 jquery 的選擇器,所以可以用 jquery 的語法來鏈結操作,而 el 則是直接指向 dom 物件
      • 通常此階段會是針對渲染好的物件進行額外的行內樣式、class 增減...等操作
      • 此階段也必須回傳 Promise 物件
    • On_attach_callback: 回到畫面
      • !此階段會多次觸發,不論是第一次進入畫面,或是經由麵包屑回到畫面都會觸發
    • On_detach_callback: 離開畫面
      • !此階段會多次觸發,只要離開畫面或是點關聯欄位跳到下一個 view 就會觸發
    • Destroy: 摧毀
      • 此階段只會觸發一次

上一篇
Day 3 開發前的基本所需知識簡介
下一篇
Day 5 實作 1: Say Hi to field widget!
系列文
Odoo 14 Javascript 開發心路歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言